An IC Card comprises a first device including a first processor and a first memory unit, intended to communicate with a handset, for example a mobile telephone. The IC Card is substantially enclosed inside the handset and electrically connected to it via contact pads.
A communication between the handset and the IC Card generally complies with an ISO 7816 protocol wherein the handset sends commands to the IC Card and the IC Card responds to such commands as a slave device. The IC Card may also comprise a second device, including a second processor and a second memory unit intended to communicate with an electronic apparatus.
The IC Card 1 of FIG. 1 comprises a first device 2, intended to communicate in conventional way with a handset 9, and a second device 3, intended to communicate with an electronic apparatus 10. The electronic apparatus 10 is substantially external to the handset device 9 and in wireless communication with the second device 3. More particularly, the IC Card 1 comprises an antenna 4, connected-to or included-in the second device 3, for receiving and transmitting wireless messages from/to the electronic apparatus 10.
The second device 3 emits conventional messages at predetermined intervals, representing the profile of the second device 3. In other words, the profile of the second device 3 specifies the wireless messages that it is able to receive. The electronic apparatus 10 in proximity of the handset device 9, detects a conventional message emitted by the second device 3 and responds to it with a wireless message.
When the antenna 4 receives the wireless message from the electronic apparatus 10, the wireless message is processed by the second device 3 and a result is returned to the electronic apparatus 10. The profile of the second device 3 may be programmed to receive wireless messages from different electronic apparatuses. In this case, the second device 3 may receive different wireless messages from different electronic apparatuses 10 and process a specific result, depending on the wireless messages received.
More particularly, the second device 3 provides one or more predetermined services 3a, 3b, 3c, also indicated in FIG. 3 as endpoint applications, intended to receive wireless message from different and respective electronic apparatuses 10 and to process the specific results.
When the electronic apparatus 10 sends the wireless message to the antenna 4, the corresponding predetermined service, for example the predetermined service 3a, executes a predetermined elaboration operation and returns a result to the electronic apparatus 10. The wireless communication may for example be based on the ZigBee protocol; in this case, the second device and the electronic apparatus are ZigBee nodes.
A drawback of such IC Card 1 is that a long delay may occurs between the time in which the IC Card receives the wireless message and the time in which the IC Card 1 may perform a consequential operation, e.g. return the result to the corresponding electronic apparatus 10.
This drawback is schematically explained with reference to FIG. 1.
The external apparatus 10 sends the wireless message, indicated as remote request, to the second device 3 of the IC Card 1. In order to process the wireless message, a software module indicated as ZigBee Engine is executed. As schematically represented in FIG. 2, the ZigBee Engine is stored inside the first device 2 and provides additional API for the execution of the predetermined services 3a, 3b, 3c and for managing a communication between the first device 2 and the second device 3.
When the wireless message is received by the second device 3, the first device 2 may be not ready to execute the ZigBee Engine, since it is a slave device with respect to the handset device 9 and must wait for an APDU command from the handset device 9, in order to execute the ZigBee Engine.
Such a drawback heavily penalizes the wireless communication between the second device 3 and the electronic apparatus 10, since the electronic apparatus 10 cannot receive the result of the elaboration operation rapidly but it must wait for the execution of the ZigBee Engine. In other words the IC Card 1 cannot be used with electronic apparatuses 10 requiring a result in a few time. This is not helpful in case of protocols based on fast exchanges of small messages, such as handshake procedures.
More particularly, according to the ISO 7816 protocol, the handset device 9 executes a poll operation towards the first device 2 of the IC Card 1, in order to detect a status of the first device 2. The first device 2 sends a poll message to the second device 3. Since the second device 3 has received a wireless message it returns the wireless message to the first device 2.
The ZigBee Engine is executed to process the wireless message, a reply message is forwarded to the second device 3 and the result is delivered to the electronic apparatus 10 via a wireless communication. The delay due to the operations described above is schematically shown in FIG. 1 as “effective response delay”.
Moreover, the ZigBee Engine is generally programmed to recall specific applets, also indicated as ZigBee Applet 2a, 2b, 2c and stored inside the memory unit of the first device 2, for executing the predetermined services 3a, 3b, 3c. Each ZigBee Applet 2a, 2b, 2c is generally provided to manage a corresponding predetermined service 3a, 3b, 3c. So the delay for returning the result to the electronic apparatus 10 is also due to the execution of the ZigBee Applet 2a, 2b, 2c, as schematically represented in FIG. 2.
Such IC Card 1 suffers for another issue due to the fact that the predetermined services 3a, 3b, 3c provides predetermined elaborations operations depending on the hardware design of the second device 3. In order to modify the predetermined services 3a, 3b, 3c, for example for processing an elaboration operation different from the predetermined one, the hardware of the second device 3 may helpfully be modified.